/**
 * 数据库服务使用示例
 * 展示如何使用 UserService 和 JournalPaperService
 */

const databaseService = require('./index');

// 使用示例
async function exampleUsage() {
  try {
    console.log('=== 数据库服务使用示例 ===\n');

    // 1. 用户操作示例
    console.log('1. 用户操作示例:');
    
    // 创建用户
    const newUser = await databaseService.users.create({
      username: 'testuser',
      password: 'password123',
      real_name: '测试用户',
      email: 'test@example.com',
      phone: '13800138000',
      status: 1
    });
    console.log('创建用户成功，ID:', newUser);

    // 获取用户
    const user = await databaseService.users.getById(newUser);
    console.log('获取用户:', user);

    // 更新用户
    await databaseService.users.update(newUser, {
      real_name: '更新后的姓名',
      email: 'updated@example.com'
    });
    console.log('更新用户成功');

    // 搜索用户
    const searchResults = await databaseService.users.search('测试');
    console.log('搜索结果:', searchResults);

    // 2. 期刊论文操作示例
    console.log('\n2. 期刊论文操作示例:');
    
    // 创建论文
    const newPaper = await databaseService.papers.create({
      title: '基于深度学习的图像识别研究',
      author: '张三',
      author_ranking: '第一作者',
      keywords: '深度学习,图像识别,卷积神经网络',
      journal_name: '计算机学报',
      journal_abbreviation: 'JC',
      publication_date: '2023-06-15',
      volume_number: '46',
      page_numbers: '123-135',
      jcr_quartile: 'Q1',
      sci_quartile: 'Q1',
      other_level: '核心期刊',
      field_of_expertise: '计算机科学',
      impact_factor: '3.5',
      number_of_citations: 25,
      paper_file_url: '/files/paper1.pdf',
      attachment_url: '/files/attachment1.zip'
    });
    console.log('创建论文成功，ID:', newPaper);

    // 获取论文
    const paper = await databaseService.papers.getById(newPaper);
    console.log('获取论文:', paper);

    // 更新论文
    await databaseService.papers.update(newPaper, {
      number_of_citations: 30,
      keywords: '深度学习,图像识别,卷积神经网络,人工智能'
    });
    console.log('更新论文成功');

    // 根据作者搜索论文
    const authorPapers = await databaseService.papers.getByAuthor('张三');
    console.log('作者论文:', authorPapers);

    // 综合搜索论文
    const searchPapers = await databaseService.papers.search('深度学习');
    console.log('搜索论文:', searchPapers);

    // 3. 统计信息示例
    console.log('\n3. 统计信息示例:');
    
    const statistics = await databaseService.getSystemStatistics();
    console.log('系统统计信息:', statistics);

    // 4. 批量操作示例
    console.log('\n4. 批量操作示例:');
    
    const batchUsers = await databaseService.batch.createUsers([
      {
        username: 'user1',
        password: 'pass1',
        real_name: '用户1',
        status: 1
      },
      {
        username: 'user2',
        password: 'pass2',
        real_name: '用户2',
        status: 1
      }
    ]);
    console.log('批量创建用户结果:', batchUsers);

    // 5. 数据导出示例
    console.log('\n5. 数据导出示例:');
    
    const exportData = await databaseService.export.all();
    console.log('导出数据:', exportData);

    console.log('\n=== 示例完成 ===');

  } catch (error) {
    console.error('示例执行失败:', error);
  }
}

// 如果直接运行此文件，则执行示例
if (require.main === module) {
  exampleUsage();
}

module.exports = {
  exampleUsage,
  databaseService
};
